﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MathLib;
using TrackingSim.Filtering.Measurements;

namespace TrackingSim.Filtering
{
    class Track_R6_
    {
        double time;
        State6PosVel state;
        Matrix covariance;
        Rcycz meas_true_rcycz;
        Razel meas_true_razel;

        public Track_R6_()
        {
            time = 0.0;
            state = new State6PosVel();
            covariance = new Matrix(6, 6);
            meas_true_rcycz = new Rcycz();
            meas_true_razel = new Razel();
        }

        public Track_R6_ clone()
        {
            Track_R6_ copy = new Track_R6_();

            copy.time = time;
            copy.state = state.clone();
            copy.covariance = covariance.clone();
            copy.meas_true_rcycz = meas_true_rcycz.clone();
            copy.meas_true_razel = meas_true_razel.clone();

            return copy;
        }

        public double Time
        {
            get { return time; }
            set { time = value; }
        }

        public State6PosVel State
        {
            get { return state; }
            set { state = value; }
        }

        public Matrix Cov
        {
            get { return covariance; }
            set { covariance = value; }
        }

        public Rcycz MeasTrueRcycz
        {
            get { return meas_true_rcycz; }
            set { meas_true_rcycz = value; }
        }

        public Razel MeasTrueRazel
        {
            get { return meas_true_razel; }
            set { meas_true_razel = value; }
        }
    }
}
